/*
 * @lc app=leetcode.cn id=150 lang=cpp
 *
 * [150] 逆波兰表达式求值
 */

// @lc code=start
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<long long> s;
        for(int i = 0; i < tokens.size(); i++)
        {
            if(tokens[i] == "+")
            {
                int r = s.top();
                s.pop();
                int l = s.top();
                s.pop();
                s.push(l + r);
            }
            else if(tokens[i] == "-")
            {
                int r = s.top();
                s.pop();
                int l = s.top();
                s.pop();
                s.push(l - r);
            }
            else if(tokens[i] == "*")
            {
                int r = s.top();
                s.pop();
                int l = s.top();
                s.pop();
                s.push(l * r);
            }
            else if(tokens[i] == "/")
            {
                int r = s.top();
                s.pop();
                int l = s.top();
                s.pop();
                s.push(l / r);
            }
            else
            {
                s.push(stoi(tokens[i]));
            }
        }
        return s.top();
    }
};

// int main()
// {
//     vector<string> v = {"4","13","5","/","+"};
//     cout << Solution().evalRPN(v) << endl;
//     return 0;
// }

// @lc code=end

